/*
 * main2.c
 *
 *  Created on: 11/09/2011
 *      Author: utn_so
 */


#include <stdio.h>
#include "collections/queue.h"
#include "filesystem.h"
#include "directorios.h"
#include "cliente.h"
#include "comandos_consola.h"

int main(int argc, char *argv[]) {


	printf("Cargando archivo de configuración... ");
	leerConfig(PATH_CONFIG,&configuracion);
	printf("cargado\n");

	printf("Conectando con el RAID o el Planificador de disco... ");
	//conectarClientes(configuracion.max_conexiones);
	printf("Conectado.\n");

	leerBootSector();
	printf("Se leyó el boot sector\n");

	printf("Bytes per sector: %u\n", cache_boot_sector->n_bytes_per_sector);
	printf("Sectores por cluster:%u\n", cache_boot_sector->n_sectors_per_cluster);
	printf("Reserved sectors: %u\n", cache_boot_sector->n_reserved_sector);
	printf("Sectors per fat: %u\n", cache_boot_sector->n_sectors_per_fat);
	printf("Cant sectors: %u\n", cache_boot_sector->n_sectors_ext);
	printf("Cluster root dir: %u\n", cache_boot_sector->n_cluster_root_dir);

	leerFat();
	printf("Se leyó la fat\n");

	ObtenerClusterLibres();
	printf("Obtenida lista de %u clusters\n", ptrListaSectLibre->elements_count);

	iniciarConsola("Filesystem", 1, consola_handler);

	/*
	void* puntero;
	NODELIBREPTR lista1, lista2;
	DIRECTORYTABLE * nodo_TD;

	conectarClientes(1);

	printf("Tamaño de parámetros: %u\n", sizeof(DISK_FORMAT));

	leerBootSector();
	printf("Se leyó el boot sector\n");

	printf("Bytes per sector: %u\n", cache_boot_sector->n_bytes_per_sector);
	printf("Sectores por cluster:%u\n", cache_boot_sector->n_sectors_per_cluster);
	printf("Reserved sectors: %u\n", cache_boot_sector->n_reserved_sector);
	printf("Sectors per fat: %u\n", cache_boot_sector->n_sectors_per_fat);
	printf("Cant sectors: %u\n", cache_boot_sector->n_sectors_ext);
	printf("Cluster root dir: %u\n", cache_boot_sector->n_cluster_root_dir);

	leerFat();
	printf("Se leyó la fat\n");*/

	/*puntero = (void*)leerCluster(1);
	printf("Se leyó el root directory\n");

	lista1 = lista2 = NULL;

	ObtenerClusterLibres();
	printf("Obtenida lista de %u clusters\n", ptrListaSectLibre->elements_count);

	nodo_TD = getArchivoTD("/dir1");


	//liberarLista(ptrListaSectLibre);
	free(puntero);
	free(cache_boot_sector);
	free(cache_fat);
	free(sector_buffer);
	collection_queue_clean(ptrListaSectLibre,destructor_cluster);

*/
	return 0;
}
